密碼學可分為「古典密碼學」、「現代密碼學」兩個領域,其中「現代密碼學」又分為「對稱金鑰密碼」、「公開金鑰密碼」兩個階段。因應不同時期人們對密碼的需求與技術不同。密碼學發展經歷從藝術到科學的發展過程,其中的協定、演算法設計、分析以及加密、解密的應用,皆發展成為獨立的藝術和學問,同時也發展成一個高度綜合而且專業的學科,並被廣泛運用在各個層面上,涵蓋了數學、統計、網路、電腦等科學內容。
古典密碼學主要是在數學和工程的基礎之上進行加密和解密。在現代加密學出現之前,被廣泛用於保護機密信息,在現代而言,古典密碼學也是一門小眾的藝術!簡單舉幾項經典的古典密碼學的例子:
將其中字母或字符被替換為其他字母或字符以加密消息。常見的替換密碼包括凱撒密碼和維吉尼亞密碼。
轉位密碼是另一種古典密碼,它不替換字符,而是重新排列字符的位置來加密消息。常見的轉位密碼包括列置換密碼和鐵路籬笆密碼。
使用相同的金鑰對訊息進行加密及解密,系統的保密性主要有金鑰的安全性決定,與演算法是否保密沒有關係。所以設計對稱金鑰密碼需時,要注意我們要如何將金鑰安全又可靠地分配給通訊地雙方,而對稱金鑰可以用於加解密,也可以用於訊息的驗證,適用於資料量較大(檔案較大)的內容進行加解密,但因為每個使用者在每組加密皆會產生一組新的金鑰,容易造成金鑰的保管不利,從而成為雙方的共同負擔
其實就是我們平常說的非對稱加密,它使用一對不同的金鑰:一個是公開金鑰(Public Key),另一個是私有金鑰(Private Key)。這兩個金鑰彼此關聯,但公開金鑰可以被分享給任何人,而私有金鑰必須保持機密,這種加密方式的演算法強度非常複雜,安全性依賴於演算法以及金鑰,如果想要解密就必須讓對方知道金鑰,所以保證他的安全性的方法就是保證金鑰的安全!他不需要像對稱密碼機制那樣傳送對方的金鑰,所以就相對提高了安全性。